home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 1 / Macwelt DVD 1.toast / Software für Mac-OS X / Entwickler-Tools / netbeans / modules / ext / djava.jar / koala / dynamicjava / tree / IntegerLiteral.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-03-14  |  1.3 KB  |  50 lines

  1. package koala.dynamicjava.tree;
  2.  
  3. public class IntegerLiteral extends Literal {
  4.    private static Integer parse(String var0) {
  5.       if (var0.startsWith("0x")) {
  6.          return parseHexadecimal(var0.substring(2, var0.length()));
  7.       } else {
  8.          return var0.startsWith("0") ? parseOctal(var0) : Integer.valueOf(var0);
  9.       }
  10.    }
  11.  
  12.    private static Integer parseHexadecimal(String var0) {
  13.       int var1 = 0;
  14.  
  15.       for(int var2 = 0; var2 < var0.length(); ++var2) {
  16.          char var3 = Character.toLowerCase(var0.charAt(var2));
  17.          if (var1 >>> 28 != 0) {
  18.             throw new NumberFormatException(var0);
  19.          }
  20.  
  21.          var1 = (var1 << 4) + var3 + (var3 >= 'a' && var3 <= 'f' ? -87 : -48);
  22.       }
  23.  
  24.       return new Integer(var1);
  25.    }
  26.  
  27.    private static Integer parseOctal(String var0) {
  28.       int var1 = 0;
  29.  
  30.       for(int var2 = 0; var2 < var0.length(); ++var2) {
  31.          char var3 = var0.charAt(var2);
  32.          if (var1 >>> 29 != 0) {
  33.             throw new NumberFormatException(var0);
  34.          }
  35.  
  36.          var1 = (var1 << 3) + var3 - 48;
  37.       }
  38.  
  39.       return new Integer(var1);
  40.    }
  41.  
  42.    public IntegerLiteral(String var1) {
  43.       this(var1, (String)null, 0, 0, 0, 0);
  44.    }
  45.  
  46.    public IntegerLiteral(String var1, String var2, int var3, int var4, int var5, int var6) {
  47.       super(var1, parse(var1), Integer.TYPE, var2, var3, var4, var5, var6);
  48.    }
  49. }
  50.